1. Field of the Invention
The present invention relates to a session initiation protocol (SIP), and in particular to a routing method which may conform to standard SIP specification, wherein real-time transport protocol (RTP) packets can pass through network address translation (NAT) devices and be routed correctly.
2. Description of the Related Art
A private address and a port number of a network device in a local area network (LAN) with a network address translation (NAT) device are translated to a public address and a public port number by the NAT device when communicating with another network device external to the LAN. In standard session initiation protocol (SIP), a session description protocol (SDP) message record an actual address and a port number, i.e. a private address and a port number, of a source communication terminal transmitting the SDP messages. On the other hand, when receiving the SDP message, another communication terminal opposite the communication terminal transmits real-time transport protocol (RTP) packets based on the source address and port number recorded in the received SDP message. Hence, if the source address and port number recorded in the SDP messages are a private address and private port number, the RTP packets will be incorrectly routed.
Several methods have been adopted to solve the above-mentioned problem of RTP packet routing. For example, in one method, a SIP server which can be referred to in document RFC 2543 or RFC 3261, published by the Internet Engineering Task Force (IETF), relays all RTP packets of a caller and a callee to ensure correct RTP packet routing. This method, however, places a heavy relay work load on the SIP server.
In method of Application Level Gateway (ALG) and Firewall Control Protocol (FCP) methods, NAT devices translate private source addresses and port numbers of outgoing SDP messages transmitted from an internal to an external network into public addresses and port numbers. NAT devices conforming to ALG and FCP, however, are required by the method while other NAT devices do not work.
In the Simple Traversal of UDP through NATs (STUN) or Traversal Using Relay NAT (TURN) methods, a NAT device is provided with a server for notifying internal terminals of public addresses and port numbers correspond thereto. An internal terminal acquires a public address and port number, from the server of a NAT device, as source address and port number in an SDP message. This method, however, requires additional servers, and communication terminals are required to support the STUN or TURN protocol. Additionally, there is a still high probability that RTP packets will be relayed by a SIP server. Hence, SIP servers are still placed with a heavy relay work load.
In the universal plug and play (UPnP) method, communication terminals acquire public addresses and port numbers from NAT devices, as source addresses and port numbers recorded in SDP messages. Terminals and NAT devices, however, must support the UPnP protocol in addition to SIP.
In still another method, the NAT device type is detected using standard SIP messages to overcome the previously described problem of RTP packet routing. In the method, NAT devices are categorized into full cone, restricted cone, port restricted cone or symmetric NAT devices. This method, however, cannot work correctly with other NAT devices excluded from the four NAT device categories.
In summary, additional resources are required in the above-described methods, such as NAT devices supporting ALG, and NAT devices provided with additional servers or additional protocols. Alternatively, NAT devices are required to satisfy four NAT device categories. Hence, the conventional methods are only capable of working effectively with SIP systems with the provision of additional resources and typical NAT devices.
Hence, there is a need for a new method capable of solving the problems presented by the conventional methods.